﻿#-*-encoding:utf-8-*-

from ftplib import FTP
import os
import sys
import time


""" 对FTP的继承
          继承父类中的方法,在子类中可以直接调用
          重载父类中retrbinary的方法
"""
class MyFTP(FTP):
    """ 下载  """
    def retrbinary(self, cmd, callback, fsize=0, rest=0):
        blocksize = 1024
        cmpsize = rest
        self.voidcmd('TYPE I')
        #此命令实现从指定位置开始下载,以达到续传的目的
        conn = self.transfercmd(cmd, rest)
        while True:
            data = conn.recv(blocksize)
            if not data:
                break
            callback(data)
            cmpsize += blocksize
        conn.close()
        return self.voidresp()

